import java.util.*;


/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DELL
 * Date: 2023-03-18
 * Time: 20:47
 */


class Date {
    public int year;
    public int month;
    public int day;

    public Date(int day) {
        System.out.println();
    }

    public Date() {
        this(10);

        System.out.println();
    }


}


public class Training_0319 {

    public class date {

    }

    public static void main(String[] args) {

    }

    public static void main2(String[] args) {
        Queue<String> queue = new LinkedList<>();
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        int length = str.length();
        int start = 0;
        int end = 0; // 运用 star 和 end 记录 " 双引号中字符的内容位置 ", 最后将其添加到 队列中
        while (end < length) {
            // 根据题意可以知道 命令号第一个字符不会是双引号 因此 end + 1 如果为 " 则start向后走.
            if (str.charAt(end + 1) == '\"') {
                end = end + 2; // end 更新为双引号后面一个字符内容
                start = end; // start 从 双引号后第二个内容向后寻找另一个双引号

                while (end < length && str.charAt(end) != '\"') {
                    end++;
                }

                // 此时 start 在第一个双引号后面第一个字符出, end 在 第二个双引号位置
                queue.offer(str.substring(start, end)); // sunstring(int begindex, int endindex) 左闭右开
                end++; // end 继续向后走
                continue; // 继续循环 寻找下一趟
            }

            // 寻找空格 当 end 遇到空格跳过并指向下一个位置
            while (end < length && str.charAt(end) == ' ') {
                end++;
            }
            start = end; // 记录

            // 找到下一个不为空格的地方 两个空格之间即为一个参数
            while (end < length && str.charAt(end) != ' ') {
                end++;
            }

            queue.offer(str.substring(start, end));

        }

        // 输出队列参数个数
        System.out.println(queue.size());
        // 输出所有 参数
        while (!queue.isEmpty()) {
            System.out.println(queue.poll());
        }
    }


    public static String oddString(String[] words) {
        Map<String, Integer> map = new HashMap<>();
        int n = words.length; // 有多少个单词, 每个单词为一个字符串
        int m = words[0].length(); // 每个字符串单词有多长, 且每一个字符串长度相同

        // 遍历 words 数组 获取每一个单词字符串
        for (int i = 0; i < n; i++) {
            StringBuilder sb = new StringBuilder(); // 用于转换字符差值转为字符串存于map中
            // 遍历每个单词字符串, 获取单词中的每一个字符
            for (int j = 1; j < m; j++) {
                // 原本为 String 类型无法加减 将"b" - "a" 转为 字符作为 'b' - 'a' 的结果作为差值
                sb.append((char) (words[i].charAt(j) - words[i].charAt(j - 1)));
                // 将后一个字符和前一个字符的差值存入map中
                // map.getOrDefault(sb.toString(),0)) + 1 :
                // 判断当前差值结果转为字符串是否在map中. 有则返回其在 map 中对应的value,无则默认为1
                // 将当前差值转为字符串, 并存进 map 中 差值相同的 value 相同(差值加1), 差值不同的value不同(为1)
                map.put(sb.toString(), (map.getOrDefault(sb.toString(), 0)) + 1);
            }

        }

        // 遍历 整个单词数组, 寻找差值不同的那个单词即 value 为 1 的 key
        for (int i = 0; i < n; i++) {
            // 利用转换字符差值为对应的字符串存于map中
            StringBuilder sb = new StringBuilder();
            for (int j = 1; j < m; j++) {
                // 同理计算差值, 利用该差值转为对应的 String 类型的 key
                sb.append((char) (words[i].charAt(j) - words[i].charAt(j - 1)));
                // 通过 差值转为的字符串即 key 在 map 中寻找其对应的 value
                if (map.get(sb.toString()) == 1) {
                    // value 为 1 的即为 map 中存储的唯一一个差值不同的单词
                    return words[i];
                }
            }
        }

        return null;

    }

    public static void main1(String[] args) {
        /*Map<String, Integer> map = new HashMap<>();
        StringBuilder sb = new StringBuilder();
        String[] words = new String[] {"abc", "cbd", "hfa"};
        int s = (char)(words[0].charAt(1) - words[0].charAt(0));
        System.out.println(s);
        sb.append(s);
        System.out.println(sb.toString());*/
//        sb.append(words[0].charAt(0) - words[0].charAt(1));
//        map.put(sb.toString(), (map.getOrDefault(sb,0)) +1);
//        System.out.println();


    }
}
